﻿#region Using Directives

    using System;
    using System.Linq;

    using Csla;

    using MarketPulse.BusinessLogic.Core;
    using MarketPulse.Reporting.Core.Criteria;

#endregion

namespace MarketPulse.Reporting.Core
{
    /// <summary>
    /// This class represents a collection of Reporting Visits
    /// </summary>
    [Serializable]
    [Csla.Server.ObjectFactory("MarketPulse.DataAccess.Factory.McDonaldsDashBoardFactory, MarketPulse.DataAccess.Factory", "FetchSummaryInfoList")]
    public class McDonaldsCSOScoreSummaryReportInfoList : MarketPulseReadOnlyListBase<McDonaldsCSOScoreSummaryReportInfoList, McDonaldsCSOScoreSummaryReportInfo>
    {

        #region Constructors

            /// <summary>
            /// Default constructor is private in order to (try to) enforce construction
            /// only via the static factory methods provided.
            /// </summary>
        public McDonaldsCSOScoreSummaryReportInfoList()
        {
        }

        #endregion

        #region Methods

            #region Factory Methods

            /// <summary>
            /// Method used to get a read only list of read only ReportingVisits that are associated with a ReportingPeriod (via the DataPortal client proxy)
            /// </summary>
            /// <param name="clientGUID">The GUID of the Client used to retrieve the list</param>
            /// <param name="profileGUID">The GUID of the Profile used to retrieve the list</param>
            /// <param name="reportingPeriod">The ReportingPeriod used to retrieve the list</param>
            /// <returns>A populated read only list of read only ReportingVisits</returns>
            public static McDonaldsCSOScoreSummaryReportInfoList GetScoreTrendingReport(DashboardReportCriteria criteria)
            {
                return DataPortal.Fetch<McDonaldsCSOScoreSummaryReportInfoList>(criteria);
            }

            #endregion

        #endregion
    }
}
